package cn.wenhe9.novel.service;

import cn.wenhe9.novel.domain.dto.AuthorCodeDto;
import cn.wenhe9.novel.domain.dto.AuthorIncomeDetailDto;
import cn.wenhe9.novel.domain.dto.AuthorIncomeDto;
import cn.wenhe9.novel.domain.dto.AuthorInfoDto;
import cn.wenhe9.novel.domain.entity.author.AuthorIncome;
import cn.wenhe9.novel.domain.entity.author.AuthorIncomeDetail;
import cn.wenhe9.novel.domain.entity.author.AuthorInfo;
import cn.wenhe9.novel.domain.vo.AuthorRegisterVo;
import cn.wenhe9.novel.result.PageResultDto;
import com.alibaba.druid.sql.visitor.functions.Lpad;
import com.baomidou.mybatisplus.extension.service.IService;
import org.springframework.stereotype.Service;

import java.util.Date;
import java.util.List;
import java.util.Map;

/**
 * 作家模块 服务类
 * @author DuJinliang
 * 2022/6/1
 */
public interface AuthorService {

    /**
     * 校验笔名是否存在
     * @return true：存在该笔名，false: 不存在该笔名
     */
    Boolean checkPenName(String penName);

    /**
     * 作家注册
     */
    void register(Long userId, AuthorRegisterVo vo);

    /**
     * 根据id查询作家信息
     */
    AuthorInfo queryAuthorById(Long authorId);

    /**
     * 作家月收入统计数据分页列表查询
     */
    PageResultDto<AuthorIncomeDto> listIncomeMonthByPage(Long page, Long pageSize, Long authorId);

    /**
     * 作家日收入统计数据分页列表查询
     */
    PageResultDto<AuthorIncomeDetailDto> listIncomeDailyByPage(Long page, Long pageSize, Long authorId);
}
